Russ Allbery: Review: Small Gods
Series: | Discworld #13 |
Publisher: | Harper |
Copyright: | February 1994 |
Printing: | March 2008 |
ISBN: | 0-06-109217-7 |
Format: | Mass market |
Pages: | 357 |
Series: | Discworld #13 |
Publisher: | Harper |
Copyright: | February 1994 |
Printing: | March 2008 |
ISBN: | 0-06-109217-7 |
Format: | Mass market |
Pages: | 357 |
I am not sure I d consider this much of a problem. Yeah, it s a UNIX pitfall, but rm -rf /foo/.* will work the exact same way, no?Lennart Poettering, systemd issue 5644Well, no, a total of 1min would have shown him that this is not the case. But we trust this guy the whole management of the init process, servers, logs (and soon our toilet and fridge management, X, DNS, whatever you ask for). There are two issues here: One is that such a bug is lurking in systemd since probably years. The reason is simple we pay with these kinds of bugs for the incredible complexity increase of the init process which takes over too much services. Referring back to the Turing Award lecture given by Hoare, we see that systemd took the later path:
I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies. Antony Hoare, Turing Award Lecture 1980The other issue is how systemd developers deal with bug reports. I have reported several cases here, this is just another one: Close the issue for comments, shut up, put it under the carpet. (Image credit: The musings of an Indian Faust)
Dein Leben in der Vorstadt, im Einfamilienhaus mit dem Garten, macht Dich nicht gl cklich. Vordergr ndig hast Du alles, was eine Frau sich w nscht und doch fehlt Dir etwas Wesentliches: Verlangen und Leidenschaft.(Your life in the suburb, in the one-family home with garden, it doesn t make you happy. On the surface you do have everything what a woman could wish for, but you are missing something essential: desire and passion) The author does not shy away from explicit language without ever dropping into the Vernacolo, the banalities. She manages to convey the incredible tension many of those being stretched out between the necessities of daily life and the need for a more personal life. Last but not least, I loved this book for quoting one of my most favorite lines from a song:
Konstantin Weckers Was passiert in den Jahren, drangen leise durch den Raum. Komm, wir gehen mit der Flut und verwandeln mit den Wellen unsere Angst in neuen Mut , sang ich mit und dachte an den SommerFor those capable of German, very recommendable.
% isenkram-lookup bluez cheese ethtool fprintd fprintd-demo gkrellm-thinkbat hdapsd libpam-fprintd pidgin-blinklight thinkfan tlp tp-smapi-dkms tp-smapi-source tpb %It can also list the firware package providing firmware requested by the load kernel modules, which in my case is an empty list because I have all the firmware my machine need:
% /usr/sbin/isenkram-autoinstall-firmware -l info: did not find any firmware files requested by loaded kernel modules. exiting %The last few days I had a look at several of the around 250 packages in Debian with udev rules. These seem like good candidates to install when a given hardware dongle is inserted, and I found several that should be proposed by isenkram. I have not had time to check all of them, but am happy to report that now there are 97 packages packages mapped to hardware by Isenkram. 11 of these packages provide hardware mapping using AppStream, while the rest are listed in the modaliases file provided in isenkram. These are the packages with hardware mappings at the moment. The marked packages are also announcing their hardware support using AppStream, for everyone to use: air-quality-sensor, alsa-firmware-loaders, argyll, array-info, avarice, avrdude, b43-fwcutter, bit-babbler, bluez, bluez-firmware, brltty, broadcom-sta-dkms, calibre, cgminer, cheese, colord, colorhug-client, dahdi-firmware-nonfree, dahdi-linux, dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd, fprintd-demo, galileo, gkrellm-thinkbat, gphoto2, gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus, gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip, ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup, libnxt, libpam-fprintd, lomoco, madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel, nbc, nqc, nut-hal-drivers, ola, open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils, pcscd, pidgin-blinklight, printer-driver-splix, pymissile, python-nxt, qlandkartegt, qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl, soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools, t2n, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms, tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking, virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse, xserver-xorg-input-wacom, xserver-xorg-video-qxl, xserver-xorg-video-vmware, yubikey-personalization and zd1211-firmware If you know of other packages, please let me know with a wishlist bug report against the isenkram-cli package, and ask the package maintainer to add AppStream metadata according to the guidelines to provide the information for everyone. In time, I hope to get rid of the isenkram specific hardware mapping and depend exclusively on AppStream. Note, the AppStream metadata for broadcom-sta-dkms is matching too much hardware, and suggest that the package with with any ethernet card. See bug #838735 for the details. I hope the maintainer find time to address it soon. In the mean time I provide an override in isenkram.
man
and mandb
programs were installed set-user-id to the man
user. Part of
this was so that man
could maintain preformatted cat pages , and part of
it was so that users could run mandb
if the system databases were out of
date (this is now much less useful since most package managers, including
dpkg
, support some kind of trigger mechanism that can run mandb
whenever
new system-level manual pages are installed). One of the first things I did
was to make this optional, and this has been a disabled-by-default debconf
option in Debian for a long time now. But it s still a supported option and
is enabled by default upstream, and when running setuid man
and mandb
need to take care to drop privileges when dealing with user-controlled data
and to write files with the appropriate ownership and permissions.
My predecessor had problems related to this such as
Debian #26002, and one of the ways they
dealt with them was to make /var/cache/man/
set-group-id root, in order
that files written to that directory would have consistent group ownership.
This always struck me as rather strange and I meant to do something about it
at some point, but until the first vulnerability report above I regarded it
as mainly a curiosity, since nothing in there was group-writeable anyway.
As a result, with the more immediate aim of making the system behave
consistently and dealing with bug reports, various bits of code had accreted
that assumed that /var/cache/man/
would be man:root 2755
, and not all of
it was immediately obvious.
This interacted with the second vulnerability report in two ways. Firstly,
at some level it caused it because I was dealing with the day-to-day
problems rather than thinking at a higher level: a
series
of bugs
led me down the path of whacking problems over the head with a recursive
chown
of /var/cache/man/
from cron
, rather than working out why things
got that way in the first place. Secondly, once I d done that, I couldn t
remove the chown
without a much more extensive excursion into all the code
that dealt with cache files, for fear of reintroducing those bugs. So
although the fix for the second vulnerability is very simple in
itself,
I couldn t get there without dealing with the first vulnerability.
In some ways, of course, cat pages are a bit of an anachronism. Most modern
systems can format pages quickly enough that it s not much of an issue.
However, I m loath to drop the feature entirely: I m generally wary of
assuming that just because I have a fast system that everyone does. So,
instead, I
did
what I should have done years ago: make man
and mandb
set-group-id man
as well as set-user-id man
, at which point we can simply make all the
cache files and directories be owned by man:man
and drop the setgid bit on
cache directories. This should be simpler and less prone to
difficult-to-understand problems.
I expect that my next substantial upstream release will switch to
--disable-setuid
by default to reduce exposure, though, and distributions
can start thinking about whether they want to follow that (Fedora already
does, for example). If this becomes widely disabled without complaints then
that would be good evidence that it s reasonable to drop the feature
entirely. I m not in a rush, but if you do need cat pages then now is a
good time to write to me and tell me why.
This is the fiddliest set of vulnerabilities I ve dealt with in man-db for
quite some time, so I hope that if there are more then I can get back to my
previous quick response time.
The demo that probably drew the most attention was from my friend Georg who demoed some LulzBot Mini 3D Printers. They really seem to love Debian which is great!At #Debconf? Join the #HetznerSA #Supermariobros challenge and stand a chance to win a case of #Leagueofbeers pic.twitter.com/DpkOj6wmZb HetznerSA Careers (@HetznerCareers) July 2, 2016
LulzBot Mini #3Dprinters were on the scene at @DebConf Open Festival in South Africa. We re powered by @debian! pic.twitter.com/AOBS64ZtiJ LulzBot (@lulzbot3D) July 13, 2016DebConf (6 August to 12 August) If I try to write up all my thoughts and feeling about DC16, I ll never get this post finished. Instead, here as some tweets from DebConf that other have written:
@o0karen0o delivering today s #DebConf16 keynote pic.twitter.com/hG1wD5MBhH Michael Banck (@mbanck) July 3, 2016
Great to see Sicelo Mhlongo speaking about issues using @debian in Swaziland #debconf16 pic.twitter.com/U6z7HA8zd5 Neil McGovern (@nmcgovern) July 7, 2016
What happened at #DebConf16 yesterday? Sandstorm Principles talking about the freedom to choose #software #sandbox pic.twitter.com/ltYaw3dAmP Obsidian Systems (@obsidianza) July 5, 2016
All @DebConf end with similar feelings: we re an incredible crowd working together for a incredibly important cause. https://t.co/DYuUWT5eKt Didier Raboud (@OdyX_) July 9, 2016
My congratulations to the #DebConf video team. As usual, they are doing an amazing work at #DebConf16Day Trip We had 3 day trips:
Marcelo Santana (@mgsantana) July 8, 2016
This states that audio/x-rosegarden is a kind of application/x-gzip (it is a gzipped XML file). Note, it is much better to use an official MIME type registered with IANA than it is to make up ones own unofficial ones like the x-rosegarden type used by rosegarden. The desktop file of the rosegarden program failed to list audio/x-rosegarden in its list of supported MIME types, causing the file browsers to have no idea what to do with *.rg files:<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <mime-type type="audio/x-rosegarden"> <sub-class-of type="application/x-gzip"/> <comment>Rosegarden project file</comment> <glob pattern="*.rg"/> </mime-type> </mime-info>
The fix was to add "audio/x-rosegarden;" at the end of the MimeType= line. If you run into a file which fail to open the correct program when selected from the file browser, please check out the output from file --mime-type for the file, ensure the file ending and MIME type is registered somewhere under /usr/share/mime/ and check that some desktop file under /usr/share/applications/ is claiming support for this MIME type. If not, please report a bug to have it fixed. :)% grep Mime /usr/share/applications/rosegarden.desktop MimeType=audio/x-rosegarden-composition;audio/x-rosegarden-device;audio/x-rosegarden-project;audio/x-rosegarden-template;audio/midi; X-KDE-NativeMimeType=audio/x-rosegarden-composition %
See also my apps list for a more complete list of the apps I have installed on the phone. I welcome recommendations on cool free software apps I should use!I have replaced the stock firmware on the phone with Cyanogenmod 12.1, which was a fairly painful experience, partly because of the difficult ambiance on the #cyanogenmod channel on Freenode, where I had extreme experiences: a brave soul helped me through the first flashing process for around 2 hours, nicely holding my hand at every step. Other times, I have seen flames and obtuse comments from people being vulgar, brutal, obnoxious, if not sometimes downright homophobic and sexist from other users. It is clearly a community that needs to fix their attitude. I have documented everything I could in details in this wiki page, in case others want to resuscitate their old phones, but also because I ended up reinstalling the freaking phone about 4 times, and was getting tired of forgetting how to do it every time. I am somewhat fascinated by Android: here is the Linux-based device that should save us all from the proprietary Apple nightmares of fenced in gardens and censorship. Yet, public Android downloads are hidden behind license agreements, even though the code itself is free, which has led fellow Debian developers to work on making libre rebuilds of Androids to workaround this insanity. But worse: all phones are basically proprietary devices down to the core. You need custom firmware to be loaded on the machine for it to boot at all, from the bootloader all the way down to the GSM baseband and Wifi drivers. It is a minefield of closed source software, and trying to run free software on there is a bit of a delusion, especially since the baseband has so much power over the phone. Still, I think it is really interesting to run free software on those machines, and help people that are stuck with cell phones get familiar with software freedom. It seems especially important to me to make Android developers aware of software freedom considering how many apps are available for free yet on which it is not possible to contribute significantly because the source code is not published at all, or published only on the Google Store, instead of the more open and public F-Droid repository which publishes only free software. So I did contribute. This month, I am happy to announce that I contributed to the following free software projects on Android:
this battery will reach end of life (5%) in 935 days, 19:07:58.336480, on 2018-10-23 12:06:07.270290Which is, to be fair, a good life: it will somewhat work for about three more years.
Favorites
list which is populated by the "star"
button in the UI.
I had a lot of fun writing this script. I started using elpy as an
IDE in Emacs. (Notice how
Emacs got a new webpage, which is a huge improvement was had been
basically unchanged since the original version, now almost 20
years old, and probably written by RMS himself.) I wonder how I
managed to stay away from Elpy for so long, as it glues together key
components of Emacs in an elegant and functional bundle:
WAV
files before the
rise of the MP3
format, of which I ended up building a significant
collection (just fair use copies from friends and owned CDs, of
course) and eventually video files.)
The downloadable internet is what still allows me to type this article
in a text editor, without internet access, while reading H0d3r's blog
post on my e-reader, because I downloaded his article off an RSS
feed. It is what makes it possible for anyone to download a full copy
of this blog post and connected web pages as a git repository and
this way get the full history of modifications on all the pages, but
also be able to edit it offline and push modifications back in.
Wikipedia is downloadable (there are even offline apps for your
phone). Open standards like RSS feeds and HTML are
downloadable. Heck, even the Internet Archive is downloadable (and
I mean, all of it, not just the parts you want), surprisingly enough.
Next.